package com.woniu.mapper;

import com.woniu.entity.InpatientRecord;
import com.woniu.vo.InpatientRecordVO;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

/**
* @author 11214
* @description 针对表【inpatient_record(住院表)】的数据库操作Mapper
* @createDate 2025-10-30 16:24:58
* @Entity com.woniu.entity.InpatientRecord
*/
public interface InpatientRecordMapper {

    Integer deleteByPrimaryKey(Long id);

    Integer insert(InpatientRecord record);

    Integer insertSelective(InpatientRecord record);

    InpatientRecord selectByPrimaryKey(Long id);

    Integer updateByPrimaryKeySelective(InpatientRecord record);

    Integer updateByPrimaryKey(InpatientRecord record);

    List<InpatientRecordVO> queryByStatus(Integer status);
    List<InpatientRecordVO> queryAll();
    InpatientRecord findActiveRecordByPatientId(Integer patientId);
    Integer updateStatusByPatientId(InpatientRecord record);
    //批量扣除所有在院病人的每日床位费
    Integer deductDailyBedFees();
    //查询余额低于阈值的所有在院病人
    List<InpatientRecord> findLowBalanceInpatients(BigDecimal threshold);
    //扣除患者押金
    Integer deductBalance(@Param("patientId") Integer patientId, @Param("amount") BigDecimal amount);
    InpatientRecord findApplyingDischargeRecordByPatientId(Integer patientId);
    //添加缴费余额
    Integer addBalanceToRecord(@Param("patientId") Integer patientId, @Param("amount") BigDecimal amount);
}

